package game;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.image.ImageObserver;
import java.io.Serializable;

/**
 * Objet associe a une case
 * @author Roch Julien
 * @version 1
 *
 */
public abstract class GameObject implements Visitable, Serializable{
	
	/**
	 * pour la serialization
	 */
	private static final long serialVersionUID = 6765969864221695421L;
	protected Point point;	// position pour le dessin...
	
	/**
	 * Constructeur
	 * @param point la position de la case
	 */
	public GameObject(Point point) {
		this.point = point;
	}

	/**
	 * Renvoie le point de l'objet
	 * @return the point
	 */
	public Point getPoint() {
		return point;
	}

	/**
	 * Definit le point de l'objet
	 * @param point Le point
	 */
	public void setPoint(Point point) {
		this.point = point;
	}

	/**
	 * Dessine un objet au bon endroit
	 * @param g le panneau sur lequel dessiner
	 * @param d les dimensions du dessin
	 * @param observer Observateur pour l'image
	 */
	public abstract void draw(Graphics g, Dimension d, ImageObserver observer);
	
}